﻿using System.Collections.Generic;

namespace DomainModel
{
    public interface IRepository<T> where T : Entity
    {
        void Add(T item);
        
        void Remove(int id);
        
        void Update(T item);
        
        T Find(int id);

        List<T> FindAll ();

        void SaveChanges();
    }

    public interface ISignalementRepository : IRepository<Signalement>
    {
        /// <summary>
        /// Détermine si une panne a déjà été créée pour cet élément.
        /// </summary>
        bool IsPanneAlreadyReported(int objetPatrimonialId, int panneId);

        List<Signalement> FindByVille(string ville);
    }

    public interface IObjetPatrimonialRepository : IRepository<ObjetPatrimonial>
    {
        
    }

    public interface IPanneRepository : IRepository<Panne>
    {

    }
}
